Let’s move on to examining an individual’s movement patterns to identify arrival at a carcass site. Going to pick the individual with the longest run:
Visualize acceleration
Okay, that’s not very informative, as expected. Let’s split this by day
and just look at one day’s sequence.
Okay, this is kind of cool. But I’m not good enough at interpreting
accelerometer data to know for sure how to read this.
What about speed and altitude? Can the combination of those tell us
what we need to know?
In order for this to make any sense at all, we need to
cross-reference these measurements with elevation data for Israel. We
can obtain this using the elevatr package.
Now let’s re-do the speed and altitude plots, using altitude above
ground:
Read in the feeding event data (this is the most updated version we have; should work on getting more info from more recent feeding events.)
## [1] 75
## feeding_date feeding_time death_of_carcass_known hours_since_death
## 1 8/30/2020 11:30:00 AM no 24
## 2 9/1/2020 2:15:00 PM no 24
## 3 9/4/2020 10:55:00 AM no 24
## 4 9/6/2020 11:10:00 AM no 24
## 5 9/7/2020 9:20:00 AM no 24
## 6 9/10/2020 1:00:00 PM no 12
## area feeding_station carcass_type weight_of_food
## 1 SdeBoker_Hatira Tzaror_trap donkey, sheep, horse 350
## 2 Small_and_Big_crater Small_crater_view ibex, sheep 130
## 3 SdeBoker_Hatira Tzaror_trap sheep, calf 310
## 4 South_Judean_desert Ben_Yair_view sheep, cow 660
## 5 SdeBoker_Hatira Antenas cow 600
## 6 Ramon_crater Kaolin calf, cow 540
## no_of_carcasses origin_carcass ranger remarks
## 1 3 בדואים עין עבדת לטובת לכידת נשרים
## 2 3 הר הנגב עודד צעירי הונח גם עוף מסוג אמו
## 3 7 מקרר עין עבדת לטובת לכידות נשרים
## 4 2 טללי שדה ג'מיל אל אטרש
## 5 1 טללי שדה יבגני קמינסקי
## 6 2 קיבוץ צאלים ידידה שמואל הצבת שוקת מים
## datetime
## 1 2020-08-30 10:56:53
## 2 2020-09-01 13:16:41
## 3 2020-09-04 09:55:39
## 4 2020-09-06 10:13:52
## 5 2020-09-07 08:40:28
## 6 2020-09-10 12:26:09
##
## Arava_valley Ramon_crater SdeBoker_Hatira
## 7 11 28
## Small_and_Big_crater South_Judean_desert West_negev_sands
## 22 6 1
Okay, now that we have that data, we critically need access to the feeding station data so that we can match these carcass drops to lat/long.
## Reading layer `CutOffRegion.kml' from data source
## `/Users/kaijagahmpersonalprojects/Desktop/dataExploration/data/CutOffRegion.kml'
## using driver `KML'
## Simple feature collection with 1 feature and 2 fields
## Geometry type: POLYGON
## Dimension: XYZ
## Bounding box: xmin: 33.46685 ymin: 29.47732 xmax: 36.72913 ymax: 33.51767
## z_range: zmin: 0 zmax: 0
## Geodetic CRS: WGS 84
## 428x252 terrain-background map image from Stamen Maps.
## See ?ggmap to plot it.
Okay, now that I know how to plot points and I know when and where the feeding events have occurred, time to plot points around each feeding station, color-coded by individual, around the time of the feeding events.
## Simple feature collection with 6 features and 10 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: 34.777 ymin: 30.8615 xmax: 35.3305 ymax: 31.3321
## Geodetic CRS: WGS 84
## feeding_date feeding_time area feeding_station
## 1 8/30/2020 11:30:00 AM SdeBoker_Hatira Tzaror_trap
## 2 9/1/2020 2:15:00 PM Small_and_Big_crater Small_crater_view
## 3 9/4/2020 10:55:00 AM SdeBoker_Hatira Tzaror_trap
## 4 9/6/2020 11:10:00 AM South_Judean_desert Ben_Yair_view
## 5 9/7/2020 9:20:00 AM SdeBoker_Hatira Antenas
## 6 9/12/2020 10:00:00 AM SdeBoker_Hatira Tzaror_trap
## carcass_type weight_of_food no_of_carcasses datetime
## 1 donkey, sheep, horse 350 3 2020-08-30 10:56:53
## 2 ibex, sheep 130 3 2020-09-01 13:16:41
## 3 sheep, calf 310 7 2020-09-04 09:55:39
## 4 sheep, cow 660 2 2020-09-06 10:13:52
## 5 cow 600 1 2020-09-07 08:40:28
## 6 sheep, calf 300 6 2020-09-12 09:00:47
## lat long geometry
## 1 30.8615 34.8136 POINT (34.8136 30.8615)
## 2 30.9490 35.1508 POINT (35.1508 30.949)
## 3 30.8615 34.8136 POINT (34.8136 30.8615)
## 4 31.3321 35.3305 POINT (35.3305 31.3321)
## 5 30.9349 34.7770 POINT (34.777 30.9349)
## 6 30.8615 34.8136 POINT (34.8136 30.8615)
In the supplementary material of Harel et al. 2016, it says that carcasses are usually discovered and consumed within “a few days,” and that feeding by other scavengers also contributes to this. To be conservative, I’m going to examine a 4-day period after carcass deposition, regardless of when the vultures find the carcass. So that’s 96 hours.
I was going to try to animate this, but instead I’m just going to calculate distance over time and plot it. Duh.
Do this for all feeding events.
Let’s assume that all carcasses will be detected within 10 days = 240 hours = 14400 minutes. So we’ll filter the data down to that.
## Rows: 26
## Columns: 15
## Groups: eventID [26]
## $ eventID <int> 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 20, …
## $ ground_speed <dbl> 16.1111111, 4.1666667, 9.4444444, 0.0000000, 8.…
## $ height_above_msl <dbl> 673, 769, 699, 506, 1451, 865, 797, 488, 387, 1…
## $ location_lat <dbl> 30.93593, 30.86246, 30.89881, 30.86148, 30.6513…
## $ location_long <dbl> 34.78006, 34.80872, 35.04202, 34.81364, 34.8489…
## $ timestamp <dttm> 2020-09-08 07:43:08, 2020-09-12 09:02:30, 2020…
## $ dateOnly <date> 2020-09-08, 2020-09-12, 2020-09-17, 2020-09-21…
## $ trackId <chr> "J11w", "A03w", "J18w", "J16w", "J35w", "T99b",…
## $ geometry <POINT [°]> POINT (34.78006 30.93593), POINT (34.8087…
## $ timeSinceCarcassPlaced <drtn> 1382.666667 mins, 103.000000 mins, 660.000000 …
## $ distanceFromCarcass <dbl> 0.313932528, 0.477437719, 0.401299332, 0.004350…
## $ groundElev <dbl> 545, 485, 393, 497, 748, 302, 98, 461, 392, 354…
## $ height_above_ground <dbl> 128, 284, 306, 9, 703, 563, 699, 27, 0, 1032, 1…
## $ detection <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,…
## $ visit <lgl> FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE,…
## Rows: 18
## Columns: 15
## Groups: eventID [18]
## $ eventID <int> 6, 8, 9, 11, 12, 13, 15, 17, 20, 23, 31, 36, 38…
## $ ground_speed <dbl> 0.0000000, 0.0000000, 0.0000000, 0.2777778, 0.0…
## $ height_above_msl <dbl> 504, 506, 748, 335, 70, 540, 402, 480, 496, 365…
## $ location_lat <dbl> 30.86165, 30.86148, 30.65264, 30.95561, 30.6413…
## $ location_long <dbl> 34.81364, 34.81364, 34.85444, 35.05579, 35.1556…
## $ timestamp <dttm> 2020-09-12 09:04:02, 2020-09-21 11:39:37, 2020…
## $ dateOnly <date> 2020-09-12, 2020-09-21, 2020-09-23, 2020-09-30…
## $ trackId <chr> "A09w", "J16w", "J35w", "T69b", "A20w", "T69b",…
## $ geometry <POINT [°]> POINT (34.81364 30.86165), POINT (34.8136…
## $ timeSinceCarcassPlaced <drtn> 195.00000 mins, 36.00000 mins, 2009.20000 mins…
## $ distanceFromCarcass <dbl> 0.016680626, 0.004350121, 0.116160694, 0.092181…
## $ groundElev <dbl> 497, 497, 740, 345, 67, 538, 402, 471, 499, 400…
## $ height_above_ground <dbl> 7, 9, 8, 0, 3, 2, 0, 9, 0, 0, 0, 2, 8, 0, 0, 5,…
## $ detection <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,…
## $ visit <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,…
This looks very similar to the first detection graph. Let’s plot them
against each other:
Group by carcass and individual to get each bird’s first visit
this may help us determine depletion.
Aaand it did not. This is really not the pattern I was expecting to see… Still need to get a sense for carcass depletion.
I’m going to be following this tutorial: https://hansenjohnson.org/post/animate-movement-in-r/
## Simple feature collection with 6 features and 60 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: 34.81339 ymin: 30.86163 xmax: 34.81348 ymax: 30.8617
## Geodetic CRS: WGS 84
## # A tibble: 6 × 61
## tag_id senso…¹ accel…² accel…³ accel…⁴ barom…⁵ batte…⁶ batte…⁷ exter…⁸ gps_h…⁹
## <int> <int> <dbl> <dbl> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1 1.26e9 653 183 -158 1012 0 90 0 24 1
## 2 1.26e9 653 17 -113 1031 0 90 0 23 1
## 3 1.26e9 653 88 -211 1008 0 90 0 25 1
## 4 1.26e9 653 -110 -312 993 0 90 0 25 1
## 5 1.26e9 653 -954 -106 356 0 90 0 24 1.1
## 6 1.26e9 653 -1005 -120 -117 0 90 0 24 1.1
## # … with 51 more variables: gps_satellite_count <int>, gps_time_to_fix <dbl>,
## # ground_speed <dbl>, heading <dbl>, height_above_msl <dbl>,
## # import_marked_outlier <chr>, light_level <dbl>, location_lat <dbl>,
## # location_long <dbl>, magnetic_field_raw_x <dbl>,
## # magnetic_field_raw_y <dbl>, magnetic_field_raw_z <dbl>,
## # ornitela_transmission_protocol <chr>, tag_voltage <dbl>, timestamp <dttm>,
## # update_ts <chr>, visible <chr>, deployment_id <dbl>, event_id <dbl>, …
## Simple feature collection with 6 features and 5 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: 34.81339 ymin: 30.86163 xmax: 34.81348 ymax: 30.8617
## Geodetic CRS: WGS 84
## # A tibble: 6 × 6
## trackId timestamp ground…¹ locat…² locat…³ geometry
## <chr> <dttm> <dbl> <dbl> <dbl> <POINT [°]>
## 1 A00w 2020-09-08 03:49:35 0 30.9 34.8 (34.81348 30.86163)
## 2 A00w 2020-09-08 03:58:55 0 30.9 34.8 (34.81339 30.86167)
## 3 A00w 2020-09-08 04:08:56 0 30.9 34.8 (34.81345 30.86168)
## 4 A00w 2020-09-08 04:18:56 0 30.9 34.8 (34.81347 30.86164)
## 5 A00w 2020-09-08 04:28:56 0 30.9 34.8 (34.81341 30.86164)
## 6 A00w 2020-09-08 04:38:58 0 30.9 34.8 (34.81344 30.8617)
## # … with abbreviated variable names ¹ground_speed, ²location_lat,
## # ³location_long
Okay, I would have to tweak this animation a lot more in order to really show them arriving at a carcass, I think.
Now we can do the same thing for detections that are NOT visits
There is usually a relationship between detections and visits–i.e. those that detect the carcass later are also later to visit. But this isn’t always the case–in a few cases, there seems to be a negative relationship (those that first detect the carcass visit later than those that detect it later.)